#include "头文件.h"
#define DAYS_IN_WEEK 7
HWND tabControl;
HWND hwndStatic;
//创建一个选项卡控件，其大小适合指定的父窗口的客户端
//区域，并添加一些标签。
//将句柄返回给tab控件。
// hwndParent-父窗口（应用程序的主窗口）。
//
HWND DoCreateTabControl(HWND hwndParent)
{
    RECT rcClient;
    INITCOMMONCONTROLSEX icex;
    TCITEM tcItem;
    int i;
    TCHAR achTemp[256];

    icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
    icex.dwICC = ICC_TAB_CLASSES;
    InitCommonControlsEx(&icex);

    //获取父窗口工作区的尺寸，并
         //创建该大小的选项卡控件子窗口。 注意g_hInst
         //是全局实例句柄。
    GetClientRect(hwndParent, &rcClient);
    tabControl = CreateWindow(
    		WC_TABCONTROL,
    		"",
            WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE,
			rcClient.left,
			rcClient.top+30,
			rcClient.right,
			rcClient.bottom,
            hwndParent,
			0,
			全局_当前实例,
			0
			);
    if (tabControl == NULL)
    {
        return NULL;
    }

    // Add tabs for each day of the week.
    tcItem.mask = TCIF_TEXT | TCIF_IMAGE;
    tcItem.iImage = -1;
    tcItem.pszText = achTemp;

    for (i = 0; i < DAYS_IN_WEEK; i++)
    {
    	//从字符串资源中加载日期字符串。 注意
    	wsprintf(achTemp,_TEXT("星期%d"),i);
        if (TabCtrl_InsertItem(tabControl, i, &tcItem) == -1)
        {
            DestroyWindow(tabControl);
            return NULL;
        }
    }
    ShowWindow(tabControl,SW_NORMAL);

    return tabControl;
}
//创建一个子窗口（静态控件）以占据选项卡控件的
//显示区域。
//将句柄返回给静态控件。
// hwndTab-选项卡控件的句柄。
HWND DoCreateDisplayWindow(HWND hwndTab)
{
    hwndStatic = CreateWindow(WC_STATIC, "",
        WS_CHILD | WS_VISIBLE | WS_BORDER,
        0, 30, 900, 600,        // Position and dimensions; example only.
        hwndTab, NULL, 全局_当前实例,    // g_hInst is the global instance handle
        NULL);
    return hwndStatic;
}
//通过调整大小来处理主窗口的WM_SIZE消息
//标签控件。
// hwndTab-选项卡控件的句柄。
// lParam-WM_SIZE消息的lParam参数。
HRESULT OnSize(HWND hwndTab, LPARAM lParam)
{
    RECT rc;

    if (hwndTab == NULL)
        return E_INVALIDARG;

    // Resize the tab control to fit the client are of main window.
     if (!SetWindowPos(hwndTab, HWND_TOP, 0, 0, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), SWP_SHOWWINDOW))
        return E_FAIL;

    return S_OK;
}

//处理来自选项卡控件的通知，如下所示：
// TCN_SELCHANGING-始终返回FALSE，以允许用户选择一个
//其他标签。
// TCN_SELCHANGE-加载字符串资源并以静态方式显示
//所选标签上的控件。
// hwndTab-选项卡控件的句柄。
// hwndDisplay-静态控件的句柄。
// lParam-WM_NOTIFY消息的lParam参数。
BOOL OnNotify(HWND hwndTab, HWND hwndDisplay, LPARAM lParam)
{
    TCHAR achTemp[256]; // temporary buffer for strings

    switch (((LPNMHDR)lParam)->code)
        {
            case TCN_SELCHANGING:
                {
                    // Return FALSE to allow the selection to change.
                    return FALSE;
                }

            case TCN_SELCHANGE:
                {
                    int iPage = TabCtrl_GetCurSel(hwndTab);

                    // Note that g_hInst is the global instance handle.
//                    LoadStringW(全局_当前实例, 3 + iPage, (LPWSTR)achTemp,sizeof(achTemp) / sizeof(achTemp[0]));
                    LRESULT result = SendMessage(hwndDisplay, WM_SETTEXT, 0,
                        (LPARAM) achTemp);
                    break;
                }
        }
        return TRUE;
}
